# -*- coding: utf-8 -*-
'''
操作文件和目录
'''
'''
Python内置的os模块也可以直接调用操作系统提供的接口函数。
'''
import os
print os.name
'''
posix，说明系统是Linux、Unix或Mac OS X，如果是nt，就是Windows系统
uname()函数在Windows上不提供，也就是说，os模块的某些函数是跟操作系统相关的

'''
print os.uname()

'''
操作系统中定义的环境变量，全部保存在os.environ这个dict
要获取某个环境变量的值，可以调用os.getenv()函数
'''
print os.environ
print os.getenv('PATH')
'''
操作文件和目录的函数一部分放在os模块中，一部分放在os.path模块中，这一点要注意一下。查看、创建和删除目录可以这么调用.
查看当前目录的绝对路径:os.path.abspath('.')
在某个目录下创建一个新目录:
(1)首先把新目录的完整路径表示出来:strname = os.path.join(pathName,fileName)
(2)然后创建一个目录 os.mkdir(strname)
判断是不是目录 os.path.isdir(strname)
删除目录 os.rmdir(strname)
'''
print os.path.abspath('.') #查看当前目录的绝对路径:
strname  = os.path.join('/Users/wangjunjie/Documents/projects/','mytest')#首先把新目录的完整路径表示出来:
print 'nnn---',os.path.isdir(strname)
if os.path.isdir(strname):
    os.rmdir(strname)
os.mkdir(strname)#然后创建一个目录
print '删除目录'
os.rmdir(strname)
'''
拆分路径时，也不要直接去拆字符串，而要通过os.path.split()函数，这样可以把一个路径拆分为两部分，后一部分总是最后级别的目录或文件名。
os.path.splitext()可以直接让你得到文件扩展名，很多时候非常方便
合并、拆分路径的函数并不要求目录和文件要真实存在，它们只对字符串进行操作
'''
print os.path.split('/Users/wangjunjie/Documents/projects/mytest')
print os.path.split('/Users/wangjunjie/Documents/projects/mytest.txt')
print os.path.splitext('/Users/wangjunjie/Documents/projects/mytest.txt')

'''
复制文件的函数在os模块中不存在的原因是复制文件并非由操作系统提供的系统调用。
shutil模块提供了copyfile()的函数，你还可以在shutil模块中找到很多实用函数，它们可以看做是os模块的补充。
os.listdir(path)函数获得指定目录中的内容,'.'表示当前目录
'''
os.rename('test.txt', 'test.py')#文件重命名
import os
d = [x for x in os.listdir('.') if os.path.isdir(x)] #列出所有的目录
print '列出当前目录下所有的目录',d
print os.path.isdir('/Users/wangjunjie/Documents/projects')
f = [x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1]=='.py']#列出所有的文件
print '列出当前目录下所有的文件',f
'''
Python的os模块封装了操作系统的目录和文件操作，要注意这些函数有的在os模块中，有的在os.path模块中
'''